package com.plian.system.entity.fr.bank;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.plian.Tools.DateUtil;
import com.plian.system.mybatis.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 银行账户存款记录表
 *
 * @author gangan
 * @since 2020-07-17
 */
@Data
@TableName("fr_bank_deposit")
@EqualsAndHashCode(callSuper = false)
public class BankDeposit extends BaseEntity {

    private static final long serialVersionUID = 1L;


    /**
     * 银行账号
     */
    private String bankAccount;

    /**
     * 银行账号名称
     */
    private String bankAccountName;

    /**
     * 分账户，挂在活期下的账户
     */
    private String depositBankAccount;

    /**
     * 银行名称
     */
    private String bankName;

    /**
     * 对应 银行编码
     */
    private String bankCode;

    /**
     * 开户银行名称
     */
    private String openBankName;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = DateUtil.PATTERN_DATE)
    private Date beginTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = DateUtil.PATTERN_DATE)
    @TableField(value = "end_time", updateStrategy = FieldStrategy.IGNORED)
    private Date endTime;

    /**
     * 存款金额（实时）
     */
    private BigDecimal depositAmount;

    /**
     * 存款金额（最初）
     */
    private BigDecimal initialDepositAmount;

    /**
     * （2定期，7理财 8结构性存款）
     */
    private Integer depositType;

    /**
     * 备注
     */
    private String note;

    /**
     * 实际到期日
     */
    @JsonFormat(pattern = DateUtil.PATTERN_DATE)
    @TableField(value = "real_end_time", updateStrategy = FieldStrategy.IGNORED)
    private Date realEndTime;

    /**
     * 企业ID
     */
    private String orgId;

    /**
     * 企业名称
     */
    private String orgName;

    /**
     * 所属集团ID
     */
    private String topGroupId;

    /**
     * 所属集团名称
     */
    private String topGroupName;

    /**
     * 表单类型
     */
    private String formType;

    /**
     * 最高年利率
     */
    private BigDecimal maxRate;

    /**
     * 最低年利率
     */
    private BigDecimal minRate;

    /**
     * 产品名称
     */
    private String projectName;

}
